package com.ruoyi.energy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 时序数据对象 ems_time_series_data
 * 
 * @author ruoyi
 * @date 2025-01-28
 */
public class EmsTimeSeriesData extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 时间戳（主键） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "时间戳", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date ts;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 能耗类型（电力/燃气/水/蒸汽等） */
    @Excel(name = "能耗类型", dictType = "energy_type")
    private String energyType;

    /** 实时功率(kW) */
    @Excel(name = "实时功率(kW)")
    private BigDecimal power;

    /** 累计能耗(kWh) */
    @Excel(name = "累计能耗(kWh)")
    private BigDecimal totalEnergy;

    /** 瞬时能耗(kWh) */
    @Excel(name = "瞬时能耗(kWh)")
    private BigDecimal instantEnergy;

    /** 电压(V) */
    @Excel(name = "电压(V)")
    private BigDecimal voltage;

    /** 电流(A) */
    @Excel(name = "电流(A)")
    private BigDecimal current;

    /** 功率因数 */
    @Excel(name = "功率因数")
    private BigDecimal powerFactor;

    /** 流量(m³/h) */
    @Excel(name = "流量(m³/h)")
    private BigDecimal flowRate;

    /** 累计流量(m³) */
    @Excel(name = "累计流量(m³)")
    private BigDecimal totalFlow;

    /** 压力(Pa) */
    @Excel(name = "压力(Pa)")
    private BigDecimal pressure;

    /** 温度(°C) */
    @Excel(name = "温度(°C)")
    private BigDecimal temperature;

    /** 湿度(%) */
    @Excel(name = "湿度(%)")
    private BigDecimal humidity;

    /** 设备状态（0正常 1告警 2故障 3离线） */
    @Excel(name = "设备状态", dictType = "device_status")
    private String status;

    /** 数据质量（0正常 1异常） */
    @Excel(name = "数据质量", dictType = "data_quality")
    private String quality;

    /** 扩展字段1 */
    private String extend1;

    /** 扩展字段2 */
    private String extend2;

    /** 扩展字段3 */
    private String extend3;

    public Date getTs() {
        return ts;
    }

    public void setTs(Date ts) {
        this.ts = ts;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public String getEnergyType() {
        return energyType;
    }

    public void setEnergyType(String energyType) {
        this.energyType = energyType;
    }

    public BigDecimal getPower() {
        return power;
    }

    public void setPower(BigDecimal power) {
        this.power = power;
    }

    public BigDecimal getTotalEnergy() {
        return totalEnergy;
    }

    public void setTotalEnergy(BigDecimal totalEnergy) {
        this.totalEnergy = totalEnergy;
    }

    public BigDecimal getInstantEnergy() {
        return instantEnergy;
    }

    public void setInstantEnergy(BigDecimal instantEnergy) {
        this.instantEnergy = instantEnergy;
    }

    public BigDecimal getVoltage() {
        return voltage;
    }

    public void setVoltage(BigDecimal voltage) {
        this.voltage = voltage;
    }

    public BigDecimal getCurrent() {
        return current;
    }

    public void setCurrent(BigDecimal current) {
        this.current = current;
    }

    public BigDecimal getPowerFactor() {
        return powerFactor;
    }

    public void setPowerFactor(BigDecimal powerFactor) {
        this.powerFactor = powerFactor;
    }

    public BigDecimal getFlowRate() {
        return flowRate;
    }

    public void setFlowRate(BigDecimal flowRate) {
        this.flowRate = flowRate;
    }

    public BigDecimal getTotalFlow() {
        return totalFlow;
    }

    public void setTotalFlow(BigDecimal totalFlow) {
        this.totalFlow = totalFlow;
    }

    public BigDecimal getPressure() {
        return pressure;
    }

    public void setPressure(BigDecimal pressure) {
        this.pressure = pressure;
    }

    public BigDecimal getTemperature() {
        return temperature;
    }

    public void setTemperature(BigDecimal temperature) {
        this.temperature = temperature;
    }

    public BigDecimal getHumidity() {
        return humidity;
    }

    public void setHumidity(BigDecimal humidity) {
        this.humidity = humidity;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getQuality() {
        return quality;
    }

    public void setQuality(String quality) {
        this.quality = quality;
    }

    public String getExtend1() {
        return extend1;
    }

    public void setExtend1(String extend1) {
        this.extend1 = extend1;
    }

    public String getExtend2() {
        return extend2;
    }

    public void setExtend2(String extend2) {
        this.extend2 = extend2;
    }

    public String getExtend3() {
        return extend3;
    }

    public void setExtend3(String extend3) {
        this.extend3 = extend3;
    }

    @Override
    public String toString() {
        return "EmsTimeSeriesData{" +
                "ts=" + ts +
                ", deviceCode='" + deviceCode + '\'' +
                ", energyType='" + energyType + '\'' +
                ", power=" + power +
                ", totalEnergy=" + totalEnergy +
                ", instantEnergy=" + instantEnergy +
                ", voltage=" + voltage +
                ", current=" + current +
                ", powerFactor=" + powerFactor +
                ", flowRate=" + flowRate +
                ", totalFlow=" + totalFlow +
                ", pressure=" + pressure +
                ", temperature=" + temperature +
                ", humidity=" + humidity +
                ", status='" + status + '\'' +
                ", quality='" + quality + '\'' +
                ", extend1='" + extend1 + '\'' +
                ", extend2='" + extend2 + '\'' +
                ", extend3='" + extend3 + '\'' +
                '}';
    }
} 